Eggplant DAIでのアクション
Eggplant DAIを使用すると、システムがテスト対象(SUT)のモデルを作成し、Eggplant DAIがあなたのシステムでテストを生成するためにそのアルゴリズムを使用することができます。モデルは_状態_と_アクション_で構成されています。状態とは、インターフェイスの個々の画面などのことを指します。アクションとは、特定の画面でユーザーが行ったり、ユーザーを画面間で移動させたりすることを指します。
モデルを実行すると、Eggplant DAIエンジンがフォローするパスを選択し、そのアルゴリズムと可能なステップに基づいて各アクションを決定します。SUTに対してテストを実行するには、FusionエンジンからSenseTalkスニペットをアクションにリンクします。
状態に関する詳細情報は、Eggplant DAIでの状態の定義を参照してください。
アクションの種類
Eggplant DAIには3つのアクションがあります:
- 通常: これらのアクションは他のアクションに対して特定の順序で実行する必要はありません。これが最も一般的なアクションのタイプです。
- 順序: これらのアクションは特定の他のアクションに対して特定の順序で実行する必要があります。
- 前: これらのアクションはモデルを前の状態に戻します。つまり、現在の状態に移行する原因となった状態に戻します。
アクションの種類を変更するには、アクションを選択し、アクションプロパティタブのタイプリストメニューを使用して、希望のアクションタイプを選択します。アクションプロパティの詳細については、アクションプロパティの設定を参照してください。
アクションを同じ状態にリンクする
前のアクションタイプは、状態変更を引き起こすために特別に事前に定義されたアクションがある唯一のタイプです。他のアクションタイプは、添付されたSenseTalkスニペットで定義されたアクションを実行します。したがって、新しい状態を呼び出すようにアクションをしたい場合、スニペットコードはそれを明示的に行う必要があります。
モデルのデフォルトの動作は、同じ状態にとどまることです。状態変更は、アクションによって状態変更が呼び出されたときにのみ発生します。たとえば、呼び出されたアクションがUIのボタンをクリックするか、フィールドにテキストを入力する場合、アクションは実行され、次にEggplant DAIアルゴリズムが同じ状態から次のアクションを選択します。アクション自体が状態変更を引き起こさないと仮定します。
言い換えれば、アクションを親の状態にリンクするためのアクションは必要ありません(または利用可能ではありません)。新しい状態が明示的に要求されるまで、すべてのアクションはその状態にとどまります。
アクションの作成
モデルの状態にアクションを追加するには、以下の手順を実行します:
- モデルワークスペースで、興味のある状態を選択します。
- アクションを作成します。以下のどちらかの方法を使用します:
- ツールバーで新しいアクションをクリックします。
- 選択した状態で右クリックします。アクションリストから新しいアクションを選択します。
- Use
Ctrl+Shift+A
.\ 新しいアクションが表示され、Action Propertiesタブが選択され、入力の準備ができています。
- アクションプロパティの設定のガイドラインに従ってアクションを設定します。
アクションは、左ペインのモデルツリータブに表示されます。状態内のアクションはその状態の下の階層に、グローバルアクション(以下で説明)は状態と同じレベルのツリーに表示されます。ツリービューでドラッグアンドドロップすることで、親状態間でアクションを移動することができます。
グローバルアクション
グローバルアクションは、任意の状態で実行できるアクションです。グローバルアクションの良い例は画面の回転です:ユーザーはあなたのアプリケーションを使用中にいつでもモバイルデバイスを回転させることができるので、その実行を一つの状態に限定することはありません。
モデルにグローバルアクションを追加するには、アクションの作成で示されている手順に従います。ただし、状態を選択する(ステップ1)代わりに、状態やアクションが選択されていないことを 確認します。何も選択せずにアクションを作成すると、そのアクションはグローバルアクションになります。
アクションプロパティの設定
新しいアクションを作成した後、アクションプロパティを設定してその動作をカスタマイズすることができます。これらのプロパティはモデルワークスペースの右ペインにあるアクションプロパティタブで編集します。
一般プロパティセクション
アクションプロパティタブの上部セクションでは、アクションの一般的なプロパティを調整できます:
- 名前: 新しいアクションはデフォルトの名前で作成されます。ここで名前をモデルにもっと説明的なものに変更します。このフィールドでは、ダブルクォーテーションを除くすべてのUnicode(UTF-8)文字を使用できます。
- 説明: このフィールドはオプションですが、このアクションについての有用な情報を記録するために使用できます。
- タイプ: このリストを使用してアクションタイプを設定します。新しいアクションは通常のタイプで作成され、これが最も一般的なアクションタイプです。ただし、必要に応じてここでSequentまたはPreviousに切り替えることができます。各アクションタイプの説明については、上のアクシ ョンの種類セクションを参照してください。
- SUT最終更新日: このリストを使用してSUTの最終更新日を設定します。Eggplant DAIが次に実行するアクションを計算するとき、SUTの最終更新日以降に取得されたカバレッジのみを考慮します。
- 重み: この設定を使用すると、モデルが実行されるときにアクションが実行される確率を変更できます。アクションのデフォルトの重みは100です。その値を50に変更すると、アクションは重みの値が100のアクションと比べて実行される確率が半分になります。
- アクション制限: この値は、テスト実行中にアクションが実行される回数の上限を設定します。この設定をアクション制限のリセットチェックボックスと一緒に使用して、状態の訪問中または全体のテスト実行中にアクションが実行できる回数を管理します。
新しいアクションはデフォルトのアクション制限値0(ゼロ)を持っています。この値はア クションが訪問できる回数に制限がないことを意味します。
- アクション時間制限: この値は、アクションが実行するのにかかる時間(秒単位)の上限を設定します。この設定は性能テストに役立ちます。デフォルト値は0です。
- アクション制限のリセット: このチェックボックスは、アクション制限の設定が状態内の単一訪問に適用されるのか、全体のテスト実行に適用されるのかを決定します:
- 選択されている場合、Eggplant DAIは状態を終了するたびにアクションのテストカウントをリセットするため、制限はこのアクションが状態を訪問するたびに実行できる回数に適用されます。
- チェックを外すと、Eggplant DAIはテスト実行全体でのアクションの発生を数えます。この場合、アクションの制限は、このアクションがテスト全体で実行できる回数を決定します。
アクションからの接続セクション
このセクションを使用して、アクションが状態に接続するように設定します。このテーブルの左側は接続選択で、3つの列が含まれています:
-
状態: この列はモデル内のすべての状態をリスト化します。
-
接続
: このチェックボックスを使用して、モデルで選択したアクションと状態との間に接続を作成します。
-
可視性
: モデルに矢印が表示されないようにしたい接続に対してこのチェックボックスを選択します。モデルが複雑で、多くのアクションと状態が接続されている場合、このオプションを使用するとビューを簡素化できます。この選択を行うと、接続された状態は元のアクションの下に影のボックスとして表示されます:
上記の例では、SelectTaskアクションはTaskDetail状態に接続しています。
テーブルの右側の接続の条件セクションは、アクションが状態に接続する前に満たす必要がある条件を設定できる場所です。このセクションには3つの列が含まれています:
- パラメータ: リストからパラメータを選択して条件を設定します。
- 条件: アクションが状態に接続する前にパラメータが満たす必要がある比較方法(つまり
<
、>
、==
)をリストメニューから選択します。 - 値: パラメータに対して評価する値を設定します。
アクションセクションによって呼び出されるスニペット
このセクションには、選択したアクションにリンクした任意のスニペットがリスト表示されます。スニペットは、テスト実行中にこのアクションに遭遇したときに実行されるSenseTalkコードの特定の部分です。
アクションプロパティタブのアクションセクションによって呼び出されるスニペット
Ctrl+Shift+A
を使用します。 新しいアクションが表示され、アクションプロパティタブが選択されて入力を待っています。
モデルワークスペースとスニペットタブを使用して、状態またはアクションにスニペットを追加できます。この方法でスニペットをリンクする方法については、モデルをスニペットにリンクするを参照してください。
アクションにアタッチしたいスニペットのパスを知っている場合は、ここに追加できます。名前フィールドをクリックし、スニペット名を入力します。
Eggplant スニペットから DAI へのデータの受け渡し
モデル内でスニペットを実行した結果得られるデータを使用する場合は、スニペットの横にある [出力] フィールドでデータを処理するためのパラメーターを指定します。戻り値ごとに 1 つのパラメータを指定します。スニペットが複数の値を返す場合は、すべての戻り値を処理するパラメータのカンマ区切りリストを指定します。
たとえば、注文書を生成し、新しく生成された注文の番号、状態、アクティブ ステータスを返す次のハンドラー コードを含むスニペットを考えてみましょう。
to generate_po
return [600,"New","true"]
end generate_po
出力 フィールドに param0
、param1
、param2
を指定して戻り値に割り当て、そのデータをモデルで使用できます。
返される値の数と [出力] フィールドで指定されたパラメーターの数が異なる場合、DAI はモデルの実行時にエラーを報告します。